<?php

class Listas_Model_DbTable_Listas extends Zend_Db_Table_Abstract {
	
	protected $_name = 'listas_cna';
	protected $_primary = 'codlista';
	protected $_rowClass = 'App_Audit_Row';
	
    /**
     * Obtiene las listas de un tipos dado
     * @param string $tipo C para completitud, V para valoraciones
     */
	public function getListas($tipo) {
	    $select = $this->select(self::SELECT_WITH_FROM_PART)
	                    ->joinUsing("subtipolistas_cna", "codsubtipolista", array("nombresubtipo"=>"nombre"))
	                    ->where("{$this->_name}.tipolista=?", $tipo)
	                    ->where("{$this->_name}.codproceso IS NULL")
	                    ->order("{$this->_name}.nombre ASC");
	    $select->setIntegrityCheck(false);
	    return $select->query()->fetchAll();
	}
	
	/**
	 * Obtiene los registros de las listas a las que se encuentra asignado
	 * un elemento
	 * @param integer $codelementolista
	 * @return array
	 */
	public function getListasAsignadasElemento($codelementolista) {
		$select = $this->select()
		                ->from(array("li"=>$this->_name), array("nombre"))
						->join(array("selista"=>"seccioneslista_cna"), "li.codlista = selista.codlista", array())
						->join(array("sele"=>"seccionelementos_cna"), "sele.codseccionlista = selista.codseccionlista", array())
						->where("sele.codelementolista=?", $codelementolista)
						->where("li.activo=?", "S")
						->order("li.nombre");;
		$select->setIntegrityCheck(false);
//		Zend_Debug::dump($select->__toString());
		return $select->query()->fetchAll();
	}
	
	public function getListaActiva($tipo,$subtipo,$codproceso="",$tipousuario="", $activa=false) {
	    $select = $this->select(self::SELECT_WITH_FROM_PART)
	                    ->joinUsing("subtipolistas_cna", "codsubtipolista", array("nombresubtipo"=>"nombre"))
	                    ->where("{$this->_name}.tipolista=?", $tipo)
	                    ->where("{$this->_name}.codsubtipolista=?", $subtipo)
	                    ->order("fecha_creacion DESC")
	                    ->limit(1);
	    
	    $select->setIntegrityCheck(false);
	    
 		if ($activa){
	    	$select->where("{$this->_name}.activo=?", "S");
 		}
	    
	    if (empty($codproceso)){
	        $select->where("codproceso IS NULL ");
	    }else{
	        $select->where("codproceso=?",$codproceso);
	    }
		if (!empty($tipousuario)){
	        $select->where("tipousuario=?",$tipousuario);
	    }
	    
//	    Zend_Debug::dump($select->__toString());
	    
	    return $select->query()->fetch();
	}
}//fin de la clase
